home *** CD-ROM | disk | FTP | other *** search
-
- I modified the vm module for the sun3 so the kernel code and data area can
- grow to 8 megabytes (on machines with at least 8 meg of memory). I've
- tested the change and it appears to work. I'll run it for a while to make
- sure everything works before I installed it.
-
- Rather than moving the kernel down in the virtual address space and having
- to change everyone's Makefile I stole the additional 4 meg from the file
- system block cache. With this change the maximum size block cache is
- 20096 Kbytes which is still more than the amount for physical memory on
- any of our sun3's. Just for reference I made a map of the virtual address
- space of the sun3 and sun4.
-
- Mendel
-
- Virtual address space on the sun3:
- e61c000 = vmMapEndAddr on 3/50
- e660000 = vmBlockCacheBaseAddr on 3/50
- e3fc000 = vmStackBaseAddr on 3/50
- ea20000 = vmMapEndAddr on paprika
- ea60000 = vmBlockCacheBaseAddr on paprika
- e800000 = vmStackBaseAddr on paprika
- 0800000 = vmKernMemSize on paprika
-
- Address
- 0xFFFFFFFF
- - Not valid in the sun3 MMU. 3840 Meg
- 0x0FFFFFFF
- - Used for weird IE, LE device mapping. 256 Kbytes
- (VMMACH_NET_MEM_START = 0xFFE0000)
- 0x0FFC0000 = VMMACH_NET_MAP_START
- - VDMA mapping addresses. 768 Kbytes
- 0x0FF00000 = VMMACH_DMA_START_ADDR
- - Device mapping area. 1024 Kbytes
- (VMMACH_DEV_END_ADDR = 0xFEFFFFF)
- 0x0FE00000 = VMMACH_DEV_START_ADDR = MACH_KERN_END
- - File system block cache. 20096 Kbytes (19.63 Meg)
- 0x0EA60000
- - Hardware segments used to access PMEGs. 256 Kbytes
- 0x0EA20000
- - Area used to map user pages into kernel. 128 KBytes
- 0x0EA00000 = vmBlockCacheBaseAddr = VmMach_AllocKernSpace(vmMapEndAddr)
- vmMachEndAddr = vmMapBaseAddr +vmNumMappedPages * vm_PageSize;
- vmBlockCacheEndAddr = mach_KernEnd = MACH_KERN_END
- - Kernel Stacks (128 processes). 2048 Kbytes.
- (stacks = 128 procs * (MACH_CODE_START - MACH_STACK_BOTTOM))
- 0x0E800000
- - Kernel Code and Data. 8192 Kbytes.
- (MACH_CODE_START = 0xE004000)
- 0x0E000000 - mach_KernStart = MACH_KERN_START = MACH_STACK_BOTTOM
- - Area for mapping between user's segment. 128 KBytes
- (0xE000000 - VMMACH_SEG_SIZE = VMMACH_MAP_SEG_ADDR)
- 0x0DFE0000
- - User's virtual address space. 229240 Kbytes (223.9 Meg)
- 0x00002000
- - Invalid page - 8 Kbytes.
- 0x00000000
-
- New sun4 mapping:
- Address
- 0xFFFFFFFF
- - Net memory allocation area.
- 0xFFFC0000
- - VDMA mapping addresses. 768 Kbytes
- 0xFFF00000
- - Device mapping area. 2048 Kbytes
- 0xFFD00000
- - Used for IE device mapping and such. Contains enough space
- to avoid cache flushes for mapping scatter gather arrays.
- 0xFFB80000
- - File system block cache. 124160 Kbytes (121.25 Meg)
- 0xF83C0000
- - Hardware segments used to access PMEGs. 512 Kbytes
- 0xF8340000
- - Lost due to rounding. 128 Kbytes
- 0xF8320000
- - Area used to map user pages into kernel. 128 KBytes
- 0xF8300000
- - Kernel Stacks (128 processes). 3072 Kbytes.
- 0xF8000000
- - Kernel Code and Data. 40 Meg (Was 32 Meg).
- 0xF6000000
- - Area for mapping between user's segment. 256 KBytes
- 0xF5FC0000
- - Not currently in use. 352000 Kbytes (343.75 Meg)
- 0xE0000000
- - The Hole!! (3072 Meg)
- 0x20000000
- - User's virtual address space. 524280 Kbytes (511.99 Meg)
- 0x00002000
- - Invalid page - 8 Kbytes.
- 0x00000000
-